# $Id: PKGBUILD 86302 2013-03-14 21:30:53Z kkeen $
# Maintainer: Kyle Keen <keenerd@gmail.com>
# Contributor: Florian Pritz <bluewind@xinu.at>
# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>

pkgbase=oss
pkgname=oss
true && pkgname=(oss libflashsupport-oss)
pkgver=4.2_2007
pkgrel=2
arch=('i686' 'x86_64')
url="http://developer.opensound.com/"
license=('GPL2')
makedepends=('gtk2')
source=("http://www.4front-tech.com/developer/sources/stable/gpl/oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl.tar.bz2"
	"rm-init-scripts.patch"
	"rc-script"
	"soundon.patch"
	"remove-hal.patch"
        "linux-3.8.patch"
	"oss.service"
	)
md5sums=('26b9d6951f3eb2eac39a0f42f0dbdae7'
         'b9a380a0ac8896390d71ac13676f27e1'
         'cbcbce5c03b127df5eafa8faa091492c'
         '65f07fe241bfbf912f76d8b6d8f276b5'
         'cd7f1dc6166bba8c94d96f3a28e948a5'
         'effecefb774f1d08ef9f0af0ad205c34'
         '8db0255b380dc6672993e627d1cd8ca6')
_dir=oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl

build() {
	cd "${srcdir}/${_dir}"

	# Avoid these flags conflicting with OSS build system.
	unset CFLAGS
	unset LDFLAGS
	unset OSFLAGS
	unset LIBRARIES
	export NO_WARNING_CHECKS=yes

	# Compile libflashsupport.so only in packaging time, so we avoid
	# conflicts with other packages and ease package management.
	msg "Building libflashsupport.so."
	cd oss/lib
	gcc -shared -fPIC -O2 -Wall -Werror flashsupport.c -o libflashsupport.so

	msg "Preparing the build environment."
	cd "${srcdir}"

	# Create build directory and configure
	rm -rf build
	mkdir build && cd build
	"${srcdir}/${_dir}/configure" --enable-libsalsa=NO --regparm

	# ossvermagic hardcodes /lib/modules *grumble*
	sed -i 's|/lib/modules|/usr&|' \
			os_cmd/Linux/ossvermagic/ossvermagic.c

        pushd "$srcdir/$_dir"
	patch -p0 -i "${srcdir}/linux-3.8.patch"
        popd

	msg "Building OSS."
	make build

	msg "Patching init scripts."
	cd "${srcdir}/build/prototype"
	rm usr/lib/oss/etc/S89oss
	patch -p0 -i "${srcdir}/rm-init-scripts.patch"
	patch -p0 -i "${srcdir}/soundon.patch"
	# remove hal dependency
	patch -p0 -i "${srcdir}/remove-hal.patch"
	rm -rf usr/lib/oss/scripts/oss_usb-create-devices usr/lib/oss/scripts/90-oss_usb-create-device.fdi

	# fix kernel module directories
	sed -i 's#/lib/modules/$KERNEL_VERSION/kernel/#/usr/lib/modules/$KERNEL_VERSION/extramodules/kernel/#g' usr/sbin/soundon
	sed -i 's#/lib/modules/$UNAME/kernel/#/usr/lib/modules/$UNAME/extramodules/kernel/#g' usr/lib/oss/build/install.sh
	sed -i 's#mkdir /lib/modules#mkdir -p /usr/lib/modules#' usr/lib/oss/build/install.sh
	sed -i 's#mkdir \(/usr/lib/modules/$UNAME/extramodules/kernel/oss\)#mkdir -p \1#' usr/lib/oss/build/install.sh
	sed -i 's#\([= ]\)/lib/modules#\1/usr/lib/modules#g' \
		usr/lib/oss/build/install.sh \
		usr/lib/oss/scripts/restore_drv.sh \
		usr/lib/oss/scripts/setup-alsa.sh \
		usr/lib/oss/scripts/remove_drv.sh \
		usr/lib/oss/build/Makefile.tmpl \
		usr/lib/oss/build/Makefile.osscore \
		usr/lib/oss/cuckoo/Makefile
}

package_oss() {
	pkgdesc="Open Sound System UNIX audio architecture"
	depends=('gcc' 'make' 'linux-headers' 'libtool' 'sed')
	optdepends=('gtk2: for graphical mixer (ossxmix)'
	            'libflashsupport-oss: Adobe flash plugin support')
	conflicts=('oss-linux' 'oss-linux-free' 'oss-testing')
	backup=('usr/lib/oss/soundon.user')
	install=oss.install

	cd "${srcdir}/build/prototype"
	cp -a * "${pkgdir}"

	chmod -R a+r "${pkgdir}" # All files can have read permission (FS#13815)
	find "${pkgdir}" -type d -exec chmod a+x '{}' \; # Make namcap happy
	install -Dm755 "${srcdir}/rc-script" "${pkgdir}/etc/rc.d/oss"
	install -Dm644 "$srcdir/oss.service" "$pkgdir/usr/lib/systemd/system/oss.service"
}

package_libflashsupport-oss() {
	pkgdesc="Adobe flash plugin support lib (OSSv4)"
	conflicts=('libflashsupport' 'libflashsupport-pulse' 'libflashsupport-oss')
	depends=('oss')

	cd "${srcdir}/${_dir}"

	install -dm755 "$pkgdir/usr/lib"
	ln -s oss/lib/libflashsupport.so "$pkgdir/usr/lib/libflashsupport.so"
}

